package com.kaifamiao.demo.d0729.am;

public class Demo02 {

    public static void main(String[] args) {
//       Dog dog = (Dog)new Pet();  ClassCastException  类型转换异常

//       Pet pet = new Dog(); // 向上转型
////       pet.say();
//
//       // a instanceof B 判断对象 a 是否属于 类型 B
//       if (pet instanceof Dog){
//           System.out.println("pet 对象属于 Dog");
//           Dog dog = (Dog) pet; // 向下转型
//           dog.lookDoor();
//       } else {
//           System.out.println("pet 对象 不 属于 Dog");
//       }

        sheep(new HSQDog());
    }



    public static void sheep(Pet pet){
        pet.say();

        // pet instanceof Dog dog 相当于 在 pet instanceof Dog 为 true 时执行了 Dog dog = (Dog) pet; 这句代码
        if (pet instanceof Dog dog){
            dog.lookDoor();
        } else if (pet instanceof Cat cat){
            cat.lu();
        } else {
            System.out.println("不需要，谢谢你");
        }

    }
}
